/**
 * Marmoset: a student project snapshot, submission, testing and code review
 * system developed by the Univ. of Maryland, College Park
 * 
 * Developed as part of Jaime Spacco's Ph.D. thesis work, continuing effort led
 * by William Pugh. See http://marmoset.cs.umd.edu/
 * 
 * Copyright 2005 - 2011, Univ. of Maryland
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 * 
 */

package edu.umd.cs.marmoset.parser;

/**
 * A single token.
 * 
 * @see TokenScanner
 * @author David Hovemeyer
 */
public class Token {
	private TokenType type;
	private String lexeme;

	/**
	 * Constructor.
	 * 
	 * @param type   the token type
	 * @param lexeme the lexeme (token text)
	 */
	public Token(TokenType type, String lexeme) {
		this.type = type;
		this.lexeme = lexeme;
	}
	
	/**
	 * Get the token type.
	 */
	public TokenType getType() {
		return type;
	}

	/**
	 * Get the lexeme (token text).
	 */
	public String getLexeme() {
		return lexeme;
	}
	
	@Override
	public String toString() {
		return type + ": " + lexeme;
	}
}
